import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Menu3 {

	/*Este es menu de manejo de vuelo y compra de boleto
	 * 
	 * 
	 * Este tiene tres opciones:
	 * 
	 * La primera es la de ingreso de un vuelo. Aqui de unira la informacion de
	 * las clases como aerolinea y aeropuerto y debe llevar a la clase Manejo
	 * 
	 *  La segunda es la de cancelacion de un vuelo. En este se debe de correr un 
	 *  metodo que tendra la clase Manejo para que se cambie el estado de algun 
	 *  vuelo
	 *  
	 *  La tercera es la compra de un boleto. esta de llevar a la clase Compra
	 * 
	 * 	 * */


	
	
	
	
	
private static List<Vuelo> lista_vuelo = new ArrayList<Vuelo>();
Scanner scaner = new Scanner(System.in);

Menu5 menu5 = new Menu5();
Menu6 menu6 = new Menu6();
Manejo manejo = new Manejo();
Compra compra = new Compra();

int opcion2;


 public void menu3(){
	
	 int control = 1;
		int opcion;
		
		//ciclo para desplegar menu en pantalla
		
		do{
			System.out.println("");
			System.out.println("Manejo de Vuelos y Compra de Boletos");
			System.out.println("======================================");
			System.out.println("1) Agregar un vuelo \n2) Cancelar un vuelo\n3) Compra de un boleto \n0) cerrar menu");
			opcion = scaner.nextInt();
			
			if(opcion == 1){
				this.agregar_vuelo();
				// a menu 2
			}
			else if (opcion ==2){
				compra.cambiarlista();
				// a menu 3
			}
			else if(opcion==3){
				manejo.comprar();
				
				// a menu 4
				}
				
			else if(opcion ==0){
				control =0;
			}
		}while(control!=0);
	 
	 
	 
	 
 }




//metodo para accesar a la lista de vuelos



public static List<Vuelo> getlista_vuelo(){
	return lista_vuelo;
}


//metodo para definir un vuelo

public void agregar_vuelo(){
	System.out.println("Ingrese el codigo de vuelo");
	String cod_vuel= scaner.next();
	String status = "Disponible";
	
	System.out.println("Ingrese hora de despegue");
	String hora_d= scaner.next();
	System.out.println("Ingrese hora de aterrizaje");
	String hora_a= scaner.next();
	System.out.println("Ingrese fecha de despegue");
	String fech_des = scaner.next();
	System.out.println("Ingrese fecha de aterrizaje");
	String fech_at= scaner.next();

	System.out.println("Seleccione el aeropuerto del que desea despegar");
	
	
	//metodo que recorre la lista aeropuerto para desplegar sus nombres en pantalla
	
	for(int h =0; h< menu5.getlista_aeropuerto().size(); h++){
		
	
		System.out.println ((h +1)+"). ");	
		System.out.println (menu5.getlista_aeropuerto().get(h).getNombreaeropuerto()+", Aeropuerto de tipo: "+menu5.getlista_aeropuerto().get(h).getTipoaeropuerto());
	}
	int opcion1 = scaner.nextInt();
	
	String aero_salida = menu5.getlista_aeropuerto().get(opcion1 -1).getNombreaeropuerto();
	
	
	
	
	
	
	System.out.println("Seleccione el aeropuerto a donde desea llegar ");
	
	
	
	//ciclo para desplegar los nombre se los aeropuertos disponibles para ese vuelo
	
	
	for(int z =0; z< menu5.getlista_aeropuerto().size(); z++){
		System.out.print ((z +1)+"). ");	
		System.out.println (menu5.getlista_aeropuerto().get(z).getNombreaeropuerto()+", Aeropuerto de tipo: "+menu5.getlista_aeropuerto().get(z).getTipoaeropuerto());
	}
	
	String aero_ent = " ";
	
	System.out.println("Seleccione el aeropuerto del que desea llegar");
	
	
	//Ciclo que muestra solo los aeropuertos a los que un aeropuerto tiene coneccion
	
	for(int m=0;m<menu5.getlista_aeropuerto().size(); m++){
	
		String t = menu5.getlista_aeropuerto().get(opcion1 -1).getTipoaeropuerto();
		String pa = menu5.getlista_aeropuerto().get(opcion1 -1).getPais();
		
		if(menu5.getlista_aeropuerto().get(m).getTipoaeropuerto().equals(t) && t=="NACIONAL"){
			
			
			if(menu5.getlista_aeropuerto().get(m).getPais().equals(pa)){
				
				System.out.println((m+1)+" "+menu5.getlista_aeropuerto().get(m));
				
			}}
			else if(menu5.getlista_aeropuerto().get(m).getTipoaeropuerto().equals(t)){
				
				
				
					System.out.println((m+1)+" "+menu5.getlista_aeropuerto().get(m));
					
				
		
			
		}
	
		
		
		
	}
	
	this.opcion2 = scaner.nextInt();
	
		
	aero_ent = menu5.getlista_aeropuerto().get(opcion2 -1).getNombreaeropuerto();
	
		
	System.out.println("Seleccione la aerolinea en que quiere viajar: ");
	
	//muestra el nombre de las aerolineas
		
	for (int c=0; c<menu6.getlista_aerolinea().size(); c++){
			
		System.out.println((c +1)+" "+menu6.getlista_aerolinea().get(c).getNombre());
	}

		
	
	int op1 = scaner.nextInt();
		
	
	String coda = menu6.getlista_aerolinea().get(op1 -1).getNombre();
	
	
	System.out.println("Seleccione el avion que quiere utilizar");
	
	
	//ciclo que muestra los aviones que se cierta aerolinea y que pueden llevar a cabo el tipo de vuelo requerido.
	
	
	for(int w =0; w< menu6.getlista_aerolinea().get(op1 -1).getAviones().size(); w++){
		
		String at = menu6.getlista_aerolinea().get(op1 -1).getAviones().get(w).getTipo();
		
		
		if(menu5.getlista_aeropuerto().get(opcion1 -1).getTipoaeropuerto().equals(at) ){
			
			System.out.println((w +1)+" "+menu6.getlista_aerolinea().get(op1 -1).getna(w));
		}
		
	}
	
	int op2 = scaner.nextInt();
	
	String codavi = menu6.getlista_aerolinea().get(op1 -1).getAviones().get(op2 -1).getCodigo();
	
	System.out.println("Seleccione el piloto a utilizar");
	
	//muestro los pilotos a escoger
	
	
	for(int f =0; f< menu6.getlista_aerolinea().get(op1 -1).getEmpleados().size(); f++){
		
		if(menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(f).getPosicion().equals("PILOTO")){
			
			System.out.println((f+1)+" "+menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(f).getPosicion()+" "+menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(f).getNombre());
		}
		
	}
	
	int op3 = scaner.nextInt();
	
	String p1 = menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(op3 -1).getNombre();
	
	System.out.println("Seleccione el co-piloto a utilizar");
	
	
	//muestra los pilotos a escoger
	
	for(int d =0; d< menu6.getlista_aerolinea().get(op1 -1).getEmpleados().size(); d++){
		
		if(menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(d).getPosicion().equals("PILOTO")){
			
			System.out.println((d+1)+" "+menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(d).getPosicion()+" "+menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(d).getNombre());
		}
		
	}
	
	int op4 = scaner.nextInt();
	
	String p2 = menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(op4 -1).getNombre();
	
	System.out.println("Seleccione azafata");
	
	//muestra las azafatas a escoger
	
	
	for(int l =0; l< menu6.getlista_aerolinea().get(op1 -1).getEmpleados().size(); l++){
		
		if(menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(l).getPosicion().equals("AZAFATA")){
			
			System.out.println((l+1)+" "+menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(l).getPosicion()+" "+menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(l).getNombre());
		}
		
	}
	
	int op5 = scaner.nextInt();
	
	String az1 = menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(op5 -1).getNombre();
	
	
	System.out.println("Seleccione azafata");
	//muestra las azafatas a escoger
	
	
	
	for(int b =0; b< menu6.getlista_aerolinea().get(op1 -1).getEmpleados().size(); b++){
		
		if(menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(b).getPosicion().equals("AZAFATA")){
			
			System.out.println((b+1)+" "+menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(b).getPosicion()+" "+menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(b).getNombre());
		}
		
	}
	
	int op6 = scaner.nextInt();
	
	String az2 = menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(op6 -1).getNombre();
	
	
	
	
	System.out.println("Seleccione azafata");
	
	//muestra las azafatas a escoger
	
	
	for(int s =0; s< menu6.getlista_aerolinea().get(op1 -1).getEmpleados().size(); s++){
		
		if(menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(s).getPosicion().equals("AZAFATA")){
			
			System.out.println((s+1)+" "+menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(s).getPosicion()+" "+menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(s).getNombre());
		}
		
	}
	
	int op7 = scaner.nextInt();
	
	String az3 = menu6.getlista_aerolinea().get(op1 -1).getEmpleados().get(op7 -1).getNombre();
	
	String tip = menu6.getlista_aerolinea().get(op1 -1).getAviones().get(op2 - 1).getTipo();
	
	int cpc = menu6.getlista_aerolinea().get(op1 -1).getAviones().get(op2 - 1).getCantidadprimeraclase();
	
	int cce = menu6.getlista_aerolinea().get(op1 -1).getAviones().get(op2 - 1).getCantidadclaseejecutiva();
	
	int cct = menu6.getlista_aerolinea().get(op1 -1).getAviones().get(op2 - 1).getCantidadclaseturista();
	
		
	lista_vuelo.add(new Vuelo(cod_vuel, status, hora_d, hora_a, fech_des, fech_at, aero_salida, aero_ent, coda, codavi, p1, p2, az1, az2, az3, tip, cpc, cce, cct));
	
	

	
	

}




}
